Xcode 15 からの String Catalog (xcstrings) を使ってみた感想
OneSip のローカライズをまだやってなかったので、String Catalog を機にやってみた。
なんと 10 画面が半日で終わって、すごい体験が良かった。
ゆめみ の社内勉強会で感想を共有したので、その時のメモ。
話したいこと
- 今更だけど String Catalog をちゃんと使ってみて、良かったよという話 & どこがいい体験だったのか
ImageResource
やColorResource
より良かった- 単数 / 複数のやりやすさがすごい
- 過去の strings からの Migration をやってみる (やったことないので)
- 実際の案件を題材にでやってみるのが楽しいのかな
議論したいこと
- Key のベストプラクティスってなんだろう
- とりあえずは Apple がやってるように Key = Value (en) にしてみた
- Key を変数っぽくすると、Single Source of Truth 感が無いのと、手間が一つ増える
- defaultValue を使う or xcstrings で default lang を編集する手間
- みんなは String Catalog はゆめみにおける R.swift を置き換えると思う?
- そもそもゆめみにおける R.swift の使い方ってちょっと特殊な感じがしている (ローカライズというよりは、ハードコードしたくないが目的な感じ)
- ローカライズしないと恩恵薄いと思いつつ
- 体感すごい楽になったから、今後は積極的にローカライズ提案してもいいんじゃないだろうか
使ってみてわかった Tips
- deployment target は iOS 15.0 + 推奨
String(localized:bundle:)
を使えないと辛いよ- 自分はちょっとよく分からなくて ↑ が使えないところでは
NSLocalizedString("Value", bundle: .module, comment: "")
を使ってたけど、どうしたらいいんでしょう?
- Modularization してないアプリのほうが楽かも、、?
- xcstring の中で改行したかったら opt + return でできたよ (not
\n
)
参考
- https://github.com/liamnichols/xcstrings-tool
- String Catalog の Practice
- 自分はまだ未対応の Info.plist のローカライズの話とかもある
- OSS の動き